package com.ygqh.baby.service;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.ygqh.baby.ao.Message;
import com.ygqh.baby.ao.OrderStatus;
import com.ygqh.baby.ao.QueryInfo;
import com.ygqh.baby.ao.ResultSet;
import com.ygqh.baby.model.BaseSkuInfo;
import com.ygqh.baby.po.KsdOrder;
import com.ygqh.baby.po.YgOrder;

public interface KsdOrderService {

	List<KsdOrder> find();

	int findCount();

	KsdOrder findById(Long id);

	int deleteSoft(Long[] ids);

	int deleteSoft(Long id);

	int save(KsdOrder ksdOrder);

	int update(KsdOrder ksdOrder);

	int updateByOrderId(KsdOrder ksdOrder);

	int saveOrUpdate(KsdOrder ksdOrder);
	Message commitOrder(List<BaseSkuInfo> skuList);

	void paySuccess(String paymentCode, String transactionId, String openId, BigDecimal totalPrice);

	/**
	 * 关注公众号之后，回写订单上的openId
	 * 
	 * @Title: writeBackOpenId
	 * @param @param openId
	 * @param orderId
	 *            入参
	 * @return int 返回类型
	 * @author （guohao）
	 * @throws
	 * @date 2017年7月18日 下午4:08:54
	 * @version V1.0
	 */
	int writeBackOpenId(String openId, Long orderId);

	KsdOrder findByOrderId(Long orderId);

	ResultSet<KsdOrder> search(QueryInfo queryInfo, String q, Date startDate,
			Date endDate,OrderStatus orderStatus);

	List<Map<String, Object>> findOrderDetail(Long orderId);

	List<Map<String, Object>> getOrderReport(Date startDate, Date endDate, OrderStatus orderStatus);

}
